package vip.liux.front.application.service.chat;

import vip.liux.front.application.service.chat.dtos.conversations.ChatConversationDto;
import vip.liux.front.application.service.chat.dtos.conversations.GetConversationInput;
import vip.liux.front.application.service.chat.dtos.conversations.MarkConversationAsReadInput;
import vip.liux.front.application.service.chat.dtos.messages.SendMessageInput;

/**
 * 会话应用服务.
 */
public interface IConversationAppService {
    /**
     * 发生消息给用户.
     *
     * @param input 输入参数
     */
    void sendMessage(SendMessageInput input, Long userId);

    /**
     * 获取会话.
     *
     * @param input 输入参数
     * @return 会话
     */
    ChatConversationDto getConversation(GetConversationInput input, Long userId);

    /**
     * 标记会话为已读.
     *
     * @param input 输入参数
     */
    void markConversationAsReadAsync(MarkConversationAsReadInput input, Long userId);
}
